Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.12.2014, 07:48
Аспирант
Отправить личное сообщение для kilohertz_. Посмотреть профиль Найти все сообщения от kilohertz_.
 
Регистрация: 07.12.2014
Сообщений: 31

Uncaught TypeError: Cannot read property 'getElementById' of null
<script type="text/javascript">
		var xml;
		function formSend() {
			xml = new XMLHttpRequest();
			xml.open("POST","ajax/register.php",true);
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			var name = '', mail = '', phone = '', password = '', password_d = '';
			name = document.getElementsByName("name")[0].value;
			mail = document.getElementsByName("mail")[0].value;
			phone = document.getElementsByName("phone")[0].value;
			password = document.getElementsByName("password")[0].value;
			password_d = document.getElementsByName("password_d")[0].value;
			xml.onreadystatechange = process;
			xml.send('name='+name+'&mail='+mail+'&phone='+phone+'&password='+password+'&password_d='+password_d+'&who=');		
		}
		
		function process() {
			if(xml.readyState == 4) {
				var resp = xml.responseXML;
				var text = resp.getElementById("res").firstChild.nodeValue;
				alert(text);
			}
		}
	</script>


Почему выдает Uncaught TypeError: Cannot read property 'getElementById' of null в строчке var text = resp.getElementById("res").firstChild.nodeValue;? Где ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2014, 07:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Потому что сервер не указал, что это XML.
Он должен выставить http-заголовок Content-Type: application/xml
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2014, 07:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Зачем тебе xml? Это же лишний геморрой. Используй JSON.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2014, 07:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kilohertz_.
var name = '', mail = '', phone = '', password = '', password_d = '';
Переменные тут не нужно инициализировать пустыми строками.
Сообщение от kilohertz_.
document.getElementsByName("name")[0].value;
Проще загнать все поля в форму и обращаться к ним как form.elements.name.value (чтоб небыло коллизии с form.name), form.mail.value

Сабмитить данные можешь тоже в JSON.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2014, 07:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Смотри, я даже отрефакторил за тебя.
var fields = {name: '', mail: '', phone: ''};
for (var key in fields) {
	fields[key] = form.elements[key].value;
}
xml.setRequestHeader("Content-Type", "application/json");
xml.send(JSON.stringify(fields));


Бери, я даже денег не попрошу за это )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2014, 08:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

На сервере:
$post = json_decode(file_get_contents('php://input'));
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг рамблер кассы Sub-zerro Общие вопросы Javascript 10 19.02.2018 23:13
Cannot read property of null blacklool Общие вопросы Javascript 5 16.01.2014 09:51
Ошибка: Uncaught TypeError: Cannot set property 'innerHTML' of null dolte Events/DOM/Window 4 16.09.2013 10:54
Ext.data.Record.create - Uncaught TypeError: Cannot read property 'items' of undefine potkin ExtJS 2 01.07.2012 23:29
JavaScript error: Cannot read property 'style' of null mainne Javascript под браузер 4 03.03.2012 18:15